/*
 * WARNING! All changes made in this file will be lost!
 * Created from 'scheme.tl' by 'mtprotoc'
 *
 * Copyright (c) 2021-present,  Teamgram Studio (https://teamgram.io).
 *  All rights reserved.
 *
 * Author: teamgramio (teamgram.io@gmail.com)
 */

package user_helper

import (
	"github.com/teamgram/teamgram-server/app/service/biz/user/internal/config"
	"github.com/teamgram/teamgram-server/app/service/biz/user/internal/dal/dataobject"
	"github.com/teamgram/teamgram-server/app/service/biz/user/internal/dao"
	"github.com/teamgram/teamgram-server/app/service/biz/user/internal/server/grpc/service"
	"github.com/teamgram/teamgram-server/app/service/biz/user/internal/svc"
)

type (
	Dao             = dao.Dao
	CacheUserData   = dao.CacheUserData
	UserContactsDO  = dataobject.UserContactsDO
	UserPresencesDO = dataobject.UserPresencesDO
)

var (
	GenCacheUserDataCacheKey   = dao.GenCacheUserDataCacheKey
	ParseCacheUserDataCacheKey = dao.ParseCacheUserDataCacheKey
	IsCacheUserDataCacheKey    = dao.IsCacheUserDataCacheKey

	GenUserPresencesKey   = dao.GenUserPresencesKey
	IsUserPresencesKey    = dao.IsUserPresencesKey
	ParseUserPresencesKey = dao.ParseUserPresencesKey

	GenContactCacheKey   = dao.GenContactCacheKey
	IsContactCacheKey    = dao.IsContactCacheKey
	ParseContactCacheKey = dao.ParseContactCacheKey
)

type (
	Config  = config.Config
	Service = service.Service
)

var (
	NewServiceContext = svc.NewServiceContext
)

func New(c Config) *service.Service {
	return service.New(svc.NewServiceContext(c))
}
